﻿using System;
using System.Diagnostics;

namespace WayTwoofFindtheBiggestPrimeNumberBelow100000
{
    internal class Program
    {
        static void Main(string[] args)
        {


            const int num = 100000;                    //可更改范围
            Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
             
            int[] re = new int[100000];                //定义一个数组，用于储存质数
            re[0] = 2;
            int k = 0;
            for (int i = 2; i <= num; i++)
            {
                int flag = 0;                       //用作标记，如果是质数就为0，不是质数就为1
                for (int j = 0; j <= k; j++)
                {

                    if (re[j] > Math.Sqrt(i))
                    {                               //只去小于等于该数字本身平方根的数字
                        break;
                    }
                    if (i % re[j] == 0)
                    {                               //只对质数取余
                        flag = 1;                   //不是质数，改为1
                        break;                      //既然已经知道这个数不是质数，那么就可以结束对这个数字的判断
                    }
                }
                if (flag == 0)
                {
                    re[++k] = i;

                }
            }
            Console.WriteLine($"最大的质数是{re[k]}");
            stopwatch.Stop();
            TimeSpan runtime = stopwatch.Elapsed;                           //运行时间结束
            Console.Write($"runtime:{runtime.TotalMilliseconds}毫秒");      //输出运行时间
        }
    }
}